package com.platform.data.handle.converter.impl;

import com.platform.data.handle.converter.DataTypeEnum;
import com.platform.data.handle.converter.AbstractDataTypeProcessHandler;
import org.apache.commons.lang3.math.NumberUtils;

import java.util.Objects;
import java.util.regex.Matcher;

/**
 * 整数
 *
 * @author zhuweijun
 * @version 1.0.0
 * @since 2025/5/13 13:23
 */
public class IntegerTypeProcessHandler extends AbstractDataTypeProcessHandler {

    /**
     * 整数
     *
     * @param typeEnum typeEnum
     * @param fieldName fieldName
     * @param fieldValue fieldValue
     * @return {@link Object}
     */
    @Override
    public Object process(DataTypeEnum typeEnum, String fieldName, String fieldValue) {
        Matcher matcher = super.matcherValue(integerPattern, fieldValue);
        if(Objects.isNull(matcher)){
            log.warn("IntegerTypeProcessHandler.process|属性字段赋值，数据类型转换，整数类型，值不是导致转换失败，数据类型：{}, 属性名称：{}，属性值：{}",
                    typeEnum.getType(), fieldName, fieldValue);
            return fieldValue;
        }
        return Integer.valueOf(fieldValue);
    }
}
